package com.fw.service.merchantprofile;

import java.io.Serializable;
import java.util.List;

import org.springframework.transaction.annotation.Transactional;

import com.fw.service.bean.EntryBean;
import com.fw.service.bean.SearchCriteriaBean;
import com.fw.service.bean.SearchResultBean;
import com.fw.service.merchantprofile.bean.MerchantProfileBean;
import com.fw.service.merchantprofile.bean.SearchMerchantProfileBean;

/**
 * Description: Merchant Profile Service
 * 
 * @author AS073
 *
 */
public interface MerchantProfileService {

    // "java.lang.List.com.fw.service.bean.ErrorBean", List<ErrorBean>
    // "com.fw.service.merchantprofile.MerchantProfileBean", MerchantProfileBean

    @Transactional
    public List<EntryBean<String, Serializable>> createMerchantProfile(MerchantProfileBean merchantProfileBean);

    public MerchantProfileBean getMerchantProfile(Long id);
    
    @Transactional
    public List<EntryBean<String, Serializable>> updateMerchantProfile(MerchantProfileBean merchantProfileBean);

    @Transactional
    public List<EntryBean<String, Serializable>> deleteMerchantProfile(MerchantProfileBean merchantProfileBean);

    public Boolean checkUniqueMerchantId(String merchantId);

    public SearchResultBean<MerchantProfileBean> selectMerchantProfile(SearchCriteriaBean<SearchMerchantProfileBean> searchCriteriaBean);
    
    public byte[] exportMerchantProfileAsCSV(SearchCriteriaBean<SearchMerchantProfileBean> searchCriteriaBean);
    
    public MerchantProfileBean getMerchantProfileByMerchantId(String merchantId);
}
